package com.skivingcloud.report.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;

/**
 * 协同文档基本信息表 实体类。
 *
 * @author skivingcloud
 * @since 2024-11-13
 */
@Schema(description = "协同文档基本信息表")
@Table("report_online_tpl")
public class ReportOnlineTpl implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    @Schema(description = "主键")
    private String id;

    /**
     * 租户
     */
    @Schema(description = "租户")
    private String tenantId;

    /**
     * 来源报表id
     */
    @Schema(description = "来源报表id")
    private String reportId;

    /**
     * 文档名称
     */
    @Schema(description = "文档名称")
    private String tplName;

    /**
     * 文档唯一标识
     */
    @Schema(description = "文档唯一标识")
    private String listId;

    /**
     * 查看权限 1所有人可见 2指定角色
     */
    @Schema(description = "查看权限 1所有人可见 2指定角色")
    private String viewAuth;

    /**
     * 设计密码
     */
    @Schema(description = "设计密码")
    private String designPwd;

    /**
     * 导出是否加密 1是 0否
     */
    @Schema(description = "导出是否加密 1是 0否")
    private String exportEncrypt;

    /**
     * 来源方式 1自己创建 2动态报表另存为
     */
    @Schema(description = "来源方式 1自己创建 2动态报表另存为")
    private String source;

    /**
     * 数据加载方式 1全部加载2单sheet加载
     */
    @Schema(description = "数据加载方式 1全部加载2单sheet加载")
    private String dataLoadType;

    /**
     * 创建人
     */
    @Schema(description = "创建人")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 更新人
     */
    @Schema(description = "更新人")
    private String updater;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除 1是 0否
     */
    @Schema(description = "是否删除 1是 0否")
    private String delFlag;

    /**
     * 报表分组
     */
    @Schema(description = "报表分组")
    private String reportType;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getReportId() {
        return reportId;
    }

    public void setReportId(String reportId) {
        this.reportId = reportId;
    }

    public String getTplName() {
        return tplName;
    }

    public void setTplName(String tplName) {
        this.tplName = tplName;
    }

    public String getListId() {
        return listId;
    }

    public void setListId(String listId) {
        this.listId = listId;
    }

    public String getViewAuth() {
        return viewAuth;
    }

    public void setViewAuth(String viewAuth) {
        this.viewAuth = viewAuth;
    }

    public String getDesignPwd() {
        return designPwd;
    }

    public void setDesignPwd(String designPwd) {
        this.designPwd = designPwd;
    }

    public String getExportEncrypt() {
        return exportEncrypt;
    }

    public void setExportEncrypt(String exportEncrypt) {
        this.exportEncrypt = exportEncrypt;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getDataLoadType() {
        return dataLoadType;
    }

    public void setDataLoadType(String dataLoadType) {
        this.dataLoadType = dataLoadType;
    }

    public String getCreator() {
        return creator;
    }

    public void setCreator(String creator) {
        this.creator = creator;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public String getUpdater() {
        return updater;
    }

    public void setUpdater(String updater) {
        this.updater = updater;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getReportType() {
        return reportType;
}

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

}
